module es {
    /**
     * 全局管理器的基类。所有全局管理器都应该从此类继承。
     */
    export class GlobalManager {
        /**
         * 表示管理器是否启用
         */
        public _enabled: boolean;

        /**
         * 获取或设置管理器是否启用
         */
        public get enabled() {
            return this._enabled;
        }

        public set enabled(value: boolean) {
            this.setEnabled(value);
        }

        /**
         * 设置管理器是否启用
         * @param isEnabled 如果为true，则启用管理器；否则禁用管理器
         */
        public setEnabled(isEnabled: boolean) {
            if (this._enabled != isEnabled) {
                this._enabled = isEnabled;
                if (this._enabled) {
                    // 如果启用了管理器，则调用onEnabled方法
                    this.onEnabled();
                } else {
                    // 如果禁用了管理器，则调用onDisabled方法
                    this.onDisabled();
                }
            }
        }

        /**
         * 在启用管理器时调用的回调方法
         */
        public onEnabled() {
        }

        /**
         * 在禁用管理器时调用的回调方法
         */
        public onDisabled() {
        }

        /**
         * 更新管理器状态的方法
         */
        public update() {
        }
    }

}
